package com.mvm.store.service;

import java.util.List;

import com.mvm.store.domain.obj.Account;
import com.mvm.store.domain.obj.Category;
import com.mvm.store.domain.obj.Item;
import com.mvm.store.domain.obj.Order;
import com.mvm.store.domain.obj.Product;

/**
 * JPetStore's central business interface.
 *
 * @author Juergen Hoeller
 * @since 30.11.2003
 */
public interface StoreFacade {

	Account getAccount(String username);

	Account getAccount(String username, String password);

	void insertAccount(Account account);

	void updateAccount(Account account);

	List<Account> getUsernameList();


	List<Category> getCategoryList();

	Category getCategory(Integer categoryId);
	

	List<Product> getProductListByCategory(Integer categoryId);

	List<Product> searchProductList(String keywords);

	Product getProduct(Integer productId);


	List<Item> getItemListByProduct(Integer productId);

	Item getItem(Integer itemId);

	boolean isItemInStock(Integer itemId);


	void insertOrder(Order order);

	Order getOrder(int orderId);

	List<Order> getOrdersByUsername(String username);

}
